package com.tedu.review.test;

/**
 * 1.抽象类
 *  (1)成员变量：可以包含变量和常量。
 *  (2)构造方法：可以有构造方法，主要用于子类访问父类的数据（即父类的初始化）。
 *  (3)成员方法：
 *    可以包含抽象方法（必须被子类实现）。
 *    可以包含非抽象方法（即具体实现的方法，子类可以继承这些方法，提高代码复用性）。
 *  (4)访问修饰符：抽象方法不能是private或final的，因为private方法不能被子类访问，而final方法不能被重写。static方法虽然语法上不冲突，但通常不推荐，因为静态方法不属于任何对象实例，与多态性相悖。
 *  (5)实例化：不能直接实例化，必须通过子类（且子类必须实现所有抽象方法）来实例化。
 *  (6)继承：Java只支持单继承，但抽象类可以继承另一个抽象类。
 * 2.接口
 *  (1)成员变量：只能是常量（public static final），即全局常量。
 *  (2)构造方法：接口不能有构造方法。
 *  (3)成员方法：
 *    只能是抽象方法
 *  (4)访问修饰符：接口中的所有成员（包括方法和常量）默认都是public的。
 *  (5)实例化：接口不能被实例化，只能通过实现接口的类来间接使用。
 *  (6)实现：一个类可以实现多个接口，但只能继承一个类（包括抽象类）。
 *  (7)继承：接口可以继承其他接口，支持多层继承。
 * 3.抽象类和接口的主要区别
 *  (1)成员变量：抽象类可以有变量和常量，接口只能有常量。
 *  (2)构造方法：抽象类可以有构造方法，接口不能有构造方法。
 *  (3)成员方法：抽象类可以有抽象方法和非抽象方法，接口在Java 8之前只能有抽象方法（Java 8及以后可以有默认方法和静态方法）。
 *  (4)实现与继承：抽象类使用extends关键字被继承，接口使用implements关键字被实现。一个类只能继承一个抽象类，但可以实现多个接口。
 *  (5)访问修饰符：抽象类中的方法可以有不同的访问修饰符（如protected、public等），而接口中的方法默认是public的。
 */
public class 作业1 {
}
